$(function(){
    $("#ModalNeoAlm").dialog({
        autoOpen: false,
        width: 500,
        height: 330,
        buttons: {
            "Grabar": function() {
                insertar();
            },
            "Cancelar": function() {
                $("#ModalNeoAlm").dialog("close");
            }
        },
        modal: true
    });
    $("#ModalEdiAlm").dialog({
        autoOpen: false,
        width: 500,
        height: 300,
        buttons: {
            "Grabar": function(){
                editar();
            },
            "Cancelar": function(){
                $("#ModalEdiAlm").dialog("close");
            }
        },
        modal: true
    });
    
    $("#btnNuevoAlm").click(function(){
        $("#ModalNeoAlm").dialog("open");
        limpiarNuevoAlm();
        generarCodigo();
    });
    
    $("#btnEditarAlm").click(function(){
        
        var filas= jQuery("#grid").jqGrid('getGridParam','selarrrow');
   
        if(filas!=""){
            if (filas.length > 0) {
                if (filas.length == 1) {
                    var codigoSel=jQuery("#grid").jqGrid('getRowData',filas[0]).codigo;
                    obtenerID(codigoSel);
                } else {
                    alert("Para modificar seleccione sólo un elemento de la lista.");
                }
            } else {
                alert("Seleccione elemento a modificar.");
            }
        }else{
            alert("Seleccione elemento a modificar"); 
        }
    });
    
    $("#btnEliminarAlm").click(function(){
        
        var filas= jQuery("#grid").jqGrid('getGridParam','selarrrow');
        if (filas.length > 0) {
            if (confirm("¿Esta Seguro de Eliminar?")) {
                for (var i = 0; i < filas.length; i++) {
                    var codigoSel = (jQuery("#grid").jqGrid('getRowData', filas[i]).codigo);
                    validarEliminar(codigoSel);
                }
            }
        } else {
            alert("Seleccione elemento para eliminar.");
        }
    });
    
    $("#txtNombreAlmSearch").keypress(function(e){
        if(e.which == 13){
            buscar();
        }
    });
    $("#txtDireccionAlmSearch").keypress(function(e){
        if(e.which == 13){
            buscar();
        }
    });
    
    $("#btnBuscarAlm").click(function(){
        buscar();
    }).button();
    
    $("#btnLimpiarAlm").click(function(){
       $("#txtNombreAlmSearch").val("");
       $("#txtDireccionAlmSearch").val("");
    }).button();
    
    $("#txtTelefonoAlm").keypress(function(e){
        return solonumeros(e);
    });
    $("#txtTelefonoAlmEdi").keypress(function(e){
        return solonumeros(e);
    });
    buscar();
});
var validarEliminar = function (codigo){
    var almacen = {
        opc:'vdel',
        codigo:codigo
    };
    $.ajax({
        data:almacen,
        url:'ajax/ajaxAlmacen.php',
        type:'POST',
        success:function(response){
            if(response != '0'){
                alert(response);
            }else{
                eliminar(codigo);
            }
        }
    });
};
var eliminar = function(codigo){
   var almacen = {
           opc:'del',
           codigo:codigo
   };
   $.ajax({
          data:almacen,
          url:'ajax/ajaxAlmacen.php',
          type:'POST',
          beforeSend:function(){},
          success:function(response){
            $("#grid").jqGrid("clearGridData", true);    
            buscar();
            alert(response);
          }
   });
};

var editar = function(){
    if(ValidarRequeridosEdit()){
        var almacen = {
            opc:"edi",
            codigo:$("#txtCodigoAlmEdi").val(),
            nombre:$("#txtNombreAlmEdi").val(),
            direccion:$("#txtDireccionAlmEdi").val(),
            telefono:$("#txtTelefonoAlmEdi").val(),
            responsable:$("#txtResponsableAlmEdi").val()
        };
        $.ajax({
            data:almacen,
            url:'ajax/ajaxAlmacen.php',
            type:'POST',
            beforeSend:function(){},
            success:function(response){
                $("#ModalEdiAlm").dialog("close");
                buscar();
                alert(response);
            }
        });
    }
};

var obtenerID = function(codigo){
    
    $("#ModalEdiAlm").dialog("open");
    limpiarEditarAlm();
    var almacen = { 
        opc:'get',
        codigo: codigo                    
    };
    $.ajax({
       data:almacen,
       url:'ajax/ajaxAlmacen.php',
       type:'post',
       beforeSend: function(){},
       success: function(response){
            var almacen=$.parseJSON(response);
            $("#txtCodigoAlmEdi").val(almacen.codigo);
            $("#txtNombreAlmEdi").val(almacen.nombre);
            $("#txtDireccionAlmEdi").val(almacen.direccion);
            $("#txtTelefonoAlmEdi").val(almacen.telefono);
            $("#txtResponsableAlmEdi").val(almacen.responsable);
       }
    });
};

var insertar = function(){
    if(ValidarRequeridos()){
        var almacen = {
            opc:'ins',
            nombre:$("#txtNombreAlm").val(),
            direccion:$("#txtDireccionAlm").val(),
            telefono:$("#txtTelefonoAlm").val(),
            responsable:$("#txtResponsableAlm").val()
        };
        $.ajax({
            data:almacen,
            url:'ajax/ajaxAlmacen.php',
            type:'POST',
            beforeSend:function(){},
            success:function(response){
                $("#ModalNeoAlm").dialog("close");
                buscar();
                alert(response);
            }
        });
    }
};

var limpiarNuevoAlm = function(){
    
    $("#txtCodigoAlm").val("");
    $("#txtNombreAlm").val("");
    $("#txtDireccionAlm").val("");
    $("#txtTelefonoAlm").val("");
    $("#txtResponsableAlm").val("");
    
    msgError("","txtCodigoAlm");
    msgError("","txtNombreAlm");
    msgError("","txtDireccionAlm");
    msgError("","txtTelefonoAlm");
    msgError("","txtResponsableAlm");
    
};

var limpiarEditarAlm = function(){
    
    $("#txtCodigoAlmEdi").val("");
    $("#txtNombreAlmEdi").val("");
    $("#txtDireccionAlmEdi").val("");
    $("#txtTelefonoAlmEdi").val("");
    $("#txtResponsableAlmEdi").val("");
    
    msgErrorEdit("","txtCodigoAlmEdi");
    msgErrorEdit("","txtNombreAlmEdi");
    msgErrorEdit("","txtDireccionAlmEdi");
    msgErrorEdit("","txtTelefonoAlmEdi");
    msgErrorEdit("","txtResponsableAlmEdi");
    
};

var generarCodigo = function(){
    var almacen = {opc:'cod'};
    $.ajax({
        data:almacen,
        url:'ajax/ajaxAlmacen.php',
        type:'POST',
        beforeSend:function(){},
        success:function(response){
            var almacen = $.parseJSON(response);
            $("#txtCodigoAlm").val(almacen.codigoNuevo);
        }
    });
};

var buscar = function() {

    var vnombre = $("#txtNombreAlmSearch").val();
    var vdireccion = $("#txtDireccionAlmSearch").val();
    var vurli='ajax/ajaxAlmacen.php?opc=bus&nd='+new Date().getTime()+'&nombre='+vnombre+'&direccion='+vdireccion;
    
    var almacen = {
        opc:"bus",
        nombre: $("#txtNombreAlmSearch").val(),
        direccion: $("#txtDireccionAlmSearch").val()
    };
    $("#grid").jqGrid("clearGridData", true);
    $("#grid").jqGrid('setGridParam',{url:vurli,datatype:'json',mtype: 'POST',postData:almacen}).trigger('reloadGrid');
    
    jQuery("#grid").jqGrid({
        url:vurli,
        datatype: "json",
        mtype: 'POST',
        postData:almacen,
        colNames: ['Codigo','Nombre', 'Direccion','Telefono','Responsable'],
        colModel: [
                    {name: 'codigo',index: 'codigo',width: 100,sorttype:"string"},
                    {name: 'nombre',index: 'nombre',width: 100,sorttype:"string"},
                    {name: 'direccion',index: 'direccion',width: 100,sorttype:"string"},
                    {name: 'telefono',index: 'telefono',width: 100,sorttype:"string"},
                    {name: 'responsable',index: 'responsable',width: 100,sorttype:"string"}
                  ],
        rowNum:10,
   	rowList:[10,20,30],
   	pager: '#pager',
   	sortname: 'id',
        viewrecords: true,
        sortorder: "desc",
        multiselect: true,
        multiSort:true,
        width: "1200",
        height: "180",
        caption: "Almacenes"
    }).navGrid("#pager", {
        edit: false,
        add: false,
        search: false,
        del: false
    });
};

jQuery.extend(jQuery.jgrid.edit, {
    ajaxEditOptions: { contentType: "application/json" },
    recreateForm: true,
    serializeEditData: function (postData) {
        return JSON.stringify(postData);
    }
});

jQuery.extend(jQuery.jgrid.del, {
    ajaxDelOptions: { contentType: "application/json" },
    serializeDelData: function (postData) {
        return JSON.stringify(postData);
    }
});